Інформація про новину
  • Переглядів: 2525
  • Дата: 4-10-2021, 08:30
4-10-2021, 08:30

34. Робота з текстовими файлами в Python

Категорія: Інформатика





Попередня сторінка:  33. Рядковий тип даних в Python
Наступна сторінка:   35. Логічний тип даних. Умовні оператор...

Якщо для розв’язування задачі під час виконання програми потрібно вводити багато даних або результати роботи програми треба зберегти для подальшого використання, введення/виведення даних зручно здійснювати з використанням текстових файлів.

Файл може бути джерелом інформації (під час введення) і приймачем інформації (під час виведення даних).

Розглянемо засоби Python для опрацювання наявних файлів і створення нових. У будь-якому випадку робота з файлом складається з трьох етапів (рис. 34.1):

Відкриття фай/іу

Для відкриття файлу користуються вбудованою функцією ореп():

де f — змінна для збереження файлового об’єкта, який використовується для читання та/або запису у файл.

Якщо шлях до файлу складається лише з імені файлу, Python буде шукати цей файл у папці, в який міститься програма.

Параметр режим відкриття визначає, які дії можна буде виконувати з файлом. Основні режими відкриття такі:

• V — тільки для читання (встановлюється, якщо не вказати);

• 'w' — тільки для запису. Знищує вміст файлу, якщо файл існує, і створює новий файл для запису, якщо не існує;

• 'а' — для дозапису. Інформація додається в кінець наявного файлу; якщо файл не існує, його буде створено.

Читання з фай/іу

Читання даних із файлу означає отримання доступу до цих даних. Функція read([n]) зчитує п символів, якщо задано ціле значення п. Якщо ж воно відсутнє, то зчитуються всі дані з файлу.

У файлі text.txt міститься рядок Привітання від Python!. У консоль виводиться вміст файлу (рис. 34.2).

Функція readliпе() зчитує із файлу один рядок. Після зчитування елемента (символу або рядка) з файлу поточним (доступним) стає наступний елемент. Якщо файл містить декілька рядків тексту, то можна прочитати файл порядково, скориставшись циклом for:

Запис у фай/і

Запис у файл можна здійснювати за допомогою функції print(), зазначаючи у списку параметрів, що виведення спрямовується у файл: print(<cnncoK виведенням file = «файловий об'єкт>)

Для того щоб у файлі збереглися зміни, його потрібно обов’язково закрити, викликавши для файлового об’єкта метод close().

Запишемо у файл один рядок:

Файл f1.txt містить декілька чисел, записаних в окремих рядках. Розглянемо, як зчитати всі числа, знайти їх суму і дозаписати значення суми в кінець файлу (рис. 34.3).

Діалогові вікна відкриття та збереження файлів

Модуль filedialog надає доступ до діалогових вікон для вибору або задання імені файлу. Для завантаження модуля слід записати команду (для скорочення подальших записів позначимо його fd):

Розглянемо функції модуля filedialog.

Функція fd.askopenfilename() надає діалогове вікно для відкриття файлу, функція fd.asksaveasfilename() — вікно для збереження файлу. Обидві функції повертають шлях до файлу, але самі його не відкривають і не зберігають. Це потрібно робити описаними вище засобами.

Створимо вікно з кнопками для відкриття і збереження файлу (рис. 34.4).

Питання для самоперевірки

1. Як організувати читання даних із текстового файлу?

2. Чим відрізняється робота функцій read(n), read() і readliпе()?

3. Як організувати виведення даних до текстового файлу?

4. Обговоріть переваги використання діалогових вікон для відкриття і збереження файлів.

5. Що означає as fd у команді from tkinter import filedialog as fd?

6. Файл t.txt містить декілька рядків символів (і цифр, і літер). Складіть програму, що переписує цифри з файлу t.txt у файл cif.txt, всі інші символи — у файл lit.txt.

Вправа 34

Написати програму, що підраховує кількість заданих символів у фрагменті тексту.

1) Створіть текстовий файл f_text.txt і запишіть у нього фрагмент статті з вікіпедії про вашу область.

2) Завантажте модулі tkinter, filedialog (як fd), messagebox.

3) Створіть вікно із заголовком Аналіз тексту. Розмістіть у вікні віджет entry класу Entry для задання шуканого символу, від-жет text класу Text — для показу вмісту файлу f_text.txt.

4) Додайте до вікна два віджети Button: для відкриття файлу і для підрахунку числа входжень шуканого символу (рис. 34.5).

5) Опишіть функцію loadText() — обробник події для кнопки Ь_ореп:

6) Опишіть функцію count_C() — обробник події для кнопки b_count:

Випробуйте роботу програми для різних значень символу с.

Комп’ютерне тестування

Виконайте тестове завдання 34 із автоматичною

перевіркою результату.

 

 

Це матеріал з підручника Інформатика 8 клас Бондаренко (2021)

 




Попередня сторінка:  33. Рядковий тип даних в Python
Наступна сторінка:   35. Логічний тип даних. Умовні оператор...



^